﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Data;
using System.IO;
using produccion.vistamodelo;
using System.ComponentModel;
using produccion.AccesoDatos;

namespace produccion.forms
{
    /// <summary>
    /// Lógica de interacción para FRMconsordens.xaml
    /// </summary>
    public partial class FRMconsordens : Window
    {
        consordens _consordens;
        public FRMconsordens()
        {
            InitializeComponent();
            _consordens = (consordens)this.DataContext;
        }

        private void butConPed_Click(object sender, RoutedEventArgs e)
        {
            _consordens.ConsPed();
        }

        private void butFil_Click(object sender, RoutedEventArgs e)
        {
            filtraOrd();
        }

        public void filtraOrd()
        {
            try
            {
                PonerTallas();
                _consordens.FiltrarOrden();

                clases.CLSCONORD consumod = new clases.CLSCONORD();
                int numContador = 1;

                //DataRowView drv = datOrden.SelectedItem as DataRowView;
                DataRowView drv = datOrden.Items.CurrentItem as DataRowView;

                if (drv != null)
                {
                    DataRow dr = drv.Row;
                    string strOrden = Convert.ToString(dr.ItemArray[0]);

                    DataTable dtTallas = consumod.TallasOrden(strOrden);
                    foreach (DataRow drx in dtTallas.Rows)
                    {
                        datSec.Columns[numContador + 3].Header = drx["CODTAL_TAL"].ToString();
                        numContador++;
                    }
                }
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        private void butLim_Click(object sender, RoutedEventArgs e)
        {
            _consordens.limpiar();
        }

        private void butImp_Click(object sender, RoutedEventArgs e)
        {

        }

        private void butSal_Click(object sender, RoutedEventArgs e)
        {
            this.Close();
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            Keyboard.Focus(texOrd);
        }

        private void texOrd_TextChanged(object sender, TextChangedEventArgs e)
        {
            comCli.Text = "";
            texPed.Text = "";
            comSub.Text = "";
            comCol.Text = "";
            _consordens.model.cdorden = texOrd.Text;

        }

        private void datOrden_PreviewKeyDown(object sender, KeyEventArgs e)
        {
            var elemento = e.OriginalSource as UIElement;
            if (e.Key == Key.Enter && elemento != null)
            {
                e.Handled = true;
                elemento.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
            }
        }

        private void PonerTallas()
        {
            try
            {
                string strValor="";
                for (int i = 1; i < 21; i++)
                {
                    strValor = "T" + i.ToString();
                    datSec.Columns[i + 3].Header = strValor;
                }
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        private void datOrden_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            try
            {
                PonerTallas();
                clases.CLSCONORD consumod = new clases.CLSCONORD();
                int numContador = 1;

                if (txtcopiaOrden.Text.Trim().Length > 4)
                {
                    DataTable dtTallas = consumod.TallasOrden(txtcopiaOrden.Text.Trim());
                    foreach (DataRow drx in dtTallas.Rows)
                    {
                        datSec.Columns[numContador + 3].Header = drx["CODTAL_TAL"].ToString();
                        numContador++;
                    }
                }
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        private void Window_KeyDown(object sender, KeyEventArgs e)
        {
            var elemento = e.OriginalSource as UIElement;
            if (e.Key == Key.F3 && elemento != null)
            {
                if (e.Key == Key.F3)
                {
                    if (MDOgeneral.logBusquedadAbierta == true) { MDOgeneral.logBusquedadAbierta = false; }
                }
            }

            if (e.Key == Key.F5 && elemento != null)
            {
                if (e.Key == Key.F5)
                {
                    if (MDOgeneral.logBusquedadAbierta2 == true) { MDOgeneral.logBusquedadAbierta2 = false; }
                }
            }
        }

    }



    public class consordens : ObservableObject
    {
        //---------------------------------------------------
        private VMbuscarReferencia _buscarReferencia;
        public VMbuscarReferencia buscarReferencia
        {
            get { return _buscarReferencia; }
            set { _buscarReferencia = value; RaisePropertyChangedEvent("buscarReferencia"); }
        }

        public consordens()
        {
            buscarReferencia = new VMbuscarReferencia();
            buscarReferencia.TieneColor = false;
            buscarReferencia.PropertyChanged += onBuscarReferenciaPropertyChanged;
            model.logHabilitar = false;
            DateTime dtmFecha = DateTime.Now;
            model.fecha = Convert.ToDateTime("01/01/" + DateTime.Now.Year.ToString());
            //model.orden.Clear();

            MDOgeneral.conectar();
            strTituloVentana = "Consulta de ordenes - Usuario: " + MDOgeneral.usuario + " - [FRMconsordens]";
        }

        void onBuscarReferenciaPropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            try
            {
                if (e.PropertyName == "IsOpen")
                {
                    if (!buscarReferencia.IsOpen)
                    {
                        foreach (string x in buscarReferencia.listaProducto)
                        {
                            model.referencia = x;
                        }
                    }
                }
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        RelayCommand _cmdBuscarReferencia;
        public ICommand cmdBuscarReferencia
        {
            get
            {
                if (_cmdBuscarReferencia == null)
                {
                    _cmdBuscarReferencia = new RelayCommand(x => buscarReferencias());
                }
                return _cmdBuscarReferencia;
            }
        }

        public void buscarReferencias()
        {
            try
            {
                buscarReferencia.IsOpen = true;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        private string _strTituloVentana;
        public string strTituloVentana
        {
            get { return _strTituloVentana; }
            set { _strTituloVentana = value; RaisePropertyChangedEvent("strTituloVentana"); }
        }

        modelo _model = new modelo();
        public modelo model
        {
            get { return _model; }
            set { _model = value; RaisePropertyChangedEvent("model"); }
        }

        public void ConsPed()
        {
            FRMbuscar f = new FRMbuscar(model.obpedido, "busXsubCli", "Fecha_pedido", "FECPED_FIL", "Codigo");
            f.ShowDialog();
            if (!f.retorno.Equals(""))
            {
                if (model.pedido.ToString() != f.retorno)
                {
                    model.pedido = Convert.ToInt32(f.retorno);
                }
            }
        }

        public void ConsRef()
        {
            FRMbuscar f = new FRMbuscar(model.obreferencia, "buscar", "Nombre", "NOMREF_FIL", "Codigo");
            f.ShowDialog();
            if (!f.retorno.Equals(""))
            {
                if (model.referencia != f.retorno)
                {
                    model.referencia = f.retorno;
                }
            }
        }

        public void FiltrarOrden()
        {
            Mouse.OverrideCursor = Cursors.Wait;

            model.strDocumentoIngreso = null;
            model.strCodigoCliente = null;
            model.strNombreCliente = null;
            model.strReparacion = null;
            model.strDocumentoIngreso = null;
            model.strDocumentoDespacho = null;

            clases.CLSENCORDP orden = new clases.CLSENCORDP();
            orden.pedido.CODCLI_EPC = model.Cli == null ? "" : model.Cli.CODCLI_CLI;
            orden.pedido.SUBCLI_EPC = model.Sub == null ? "" : model.Sub.CODCLI_CLI;
            orden.pedido.NROPED_EPC = model.pedido;
            orden.NROPED_EOP = model.pedido;
            orden.FECORD_EOP = model.fecha;
            orden.CODREF_EOP = String.IsNullOrEmpty(model.referencia) ? "" : model.referencia;
           
            if (model.Col != null)
            {
                orden.CODCOL_EOP = String.IsNullOrEmpty(model.Col.CODCOL_COL) ? "" : model.Col.CODCOL_COL;
            }
            orden.NROORD_EOP = String.IsNullOrEmpty(model.cdorden) ? "" : model.cdorden;
            //model.orden = orden.filtrarOrdenes();
            DataTable dtOrdenes = orden.filtrarOrdenes();
            model.dtCopiaOrdenes = dtOrdenes;
            model.consumo.Clear();

            // Totaliza las ordenes consultadas
            model.numTotalOrden = 0;
            model.numTotalProgramado = 0;
            model.numTotalCortado = 0;
            model.numTotalPreparado = 0;
            model.numTotalGuarnecido = 0;
            model.numTotalDespachado = 0;
            model.numTotalMontado = 0;
            foreach (DataRow drO in model.dtCopiaOrdenes.Rows)
            {
                model.numTotalOrden = model.numTotalOrden + Convert.ToInt32(drO["CANORD_DOP"]);
                model.numTotalProgramado = model.numTotalProgramado + Convert.ToInt32(drO["CANPRG_DOP"]);
                model.numTotalCortado = model.numTotalCortado + Convert.ToInt32(drO["CANCOR_DOP"]);
                model.numTotalPreparado = model.numTotalPreparado + Convert.ToInt32(drO["CANPRP_DOP"]);
                model.numTotalGuarnecido = model.numTotalGuarnecido + Convert.ToInt32(drO["CANGUA_DOP"]);
                model.numTotalDespachado = model.numTotalDespachado + Convert.ToInt32(drO["CANDES_DOP"]);
                model.numTotalMontado = model.numTotalMontado + Convert.ToInt32(drO["CANMON_DOP"]);
            }
            if (model.dtCopiaOrdenes.Rows.Count > 0)
                model.ordensel = 0;

            // Fin totalizar ordenes consultadas

            if (model.dtCopiaOrdenes != null)
            {
                if (model.dtCopiaOrdenes.Rows.Count == 1)
                {
                    clases.CLSCONORD consumod = new clases.CLSCONORD();
                    consumod.NROORD_COR = model.dtCopiaOrdenes.Rows[0]["NROORD_EOP"].ToString();
                    model.consumo = consumod.consConsumoOrden();
                    clases.CLSREPPRO procesod = new clases.CLSREPPRO();
                    procesod.NROORD_RPP = model.dtCopiaOrdenes.Rows[0]["NROORD_EOP"].ToString();
                    model.proceso = procesod.consProOrden();
                    model.lisCanPro = model._repositorio.consultarDetalleOrden(model.dtCopiaOrdenes.Rows[0]["NROORD_EOP"].ToString());

                    //model.lisCanPro = new clases.CLSENCPRCP { NROORD_EPP = model.orden.Rows[0]["nroord_eop"].ToString() }.consCantProceso();
                    model.llenarImagen();

                    //BUSCAR REPARACION
                    DataTable dtR = consumod.consOrdenReparacion();
                    foreach (DataRow dr in dtR.Rows)
                    {
                        if (dr["TIPDET_DRP"].ToString().Trim() == "01")
                        {
                            model.strCodigoCliente = dr["CODCLI_ERP"].ToString();
                            model.strNombreCliente = dr["NOMCLI_CLI"].ToString();
                            model.strReparacion = dr["NROREP_ERP"].ToString();
                            model.strDocumentoIngreso = dr["DOCDET_DRP"].ToString();
                        }
                        else
                        {
                            if (dr["TIPDET_DRP"].ToString().Trim() == "03")
                                model.strDocumentoDespacho = dr["DOCDET_DRP"].ToString();
                        }
                    }
                }
            }
            else
                MessageBox.Show("No se encontro información para esta orden");

            Mouse.OverrideCursor = Cursors.Arrow;
        }


        public void limpiar()
        {
            try
            {
                model.strDocumentoIngreso = null;
                model.strCodigoCliente = null;
                model.strNombreCliente = null;
                model.strReparacion = null;
                model.strDocumentoIngreso = null;
                model.strDocumentoDespacho = null;
                //if (model.orden.Rows.Count > 0)
                //{
                //    model.ordensel = -1;
                //    model.orden.Rows.Clear();
                //}
                model.seccion.Clear();
                model.proceso.Clear();
                model.consumo.Clear();
                model.lisCanPro.Clear();
                model.referencia = "";
                model.pedido = 0;
                model.cdorden = "";
                model.logHabilitar = false;
                model.lisCli = new clases.CLSMAECLIP().listaCliente();
                model.lisSub = new List<clases.CLSMAECLIP>();
                model.lisCol = new List<clases.CLSMAECOLP>();
                model.obpedido = new clases.CLSENCPPCP();
                model.obreferencia = new clases.CLSENCORDP();
                model.visorFotoReferencia.strCodigo = "";
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }


        public class modelo : ObservableObject
        {

            internal ProcesoProduccionRepositorio _repositorio = new ProcesoProduccionRepositorio();
            public clases.CLSENCPPCP obpedido = new clases.CLSENCPPCP();
            public clases.CLSENCORDP obreferencia = new clases.CLSENCORDP();

            public List<clases.CLSMAECOLP> consColor()
            {
                List<clases.CLSMAECOLP> colores = new List<clases.CLSMAECOLP>();
                try
                {
                    DataTable val = new clases.CLSMAEPRO { CODREF_PRO = referencia }.BuscarColor();
                    foreach (DataRow r in val.Rows)
                    {
                        colores.Add(new clases.CLSMAECOLP { CODCOL_COL = r["Codigo"].ToString(), NOMCOL_COL = r["nombre"].ToString() });
                    }
                }

                catch (Exception ex) { MessageBox.Show(ex.Message); }
                return colores;
            }

            List<clases.CLSMAECLIP> _lisCli = new clases.CLSMAECLIP().listaCliente();
            public List<clases.CLSMAECLIP> lisCli
            {
                get { _lisCli.Insert(0, new clases.CLSMAECLIP { NOMCLI_CLI = "<Todos>" }); return _lisCli; }
                set { _lisCli = value; RaisePropertyChangedEvent("lisCli"); }
            }

            clases.CLSMAECLIP _Cli = new clases.CLSMAECLIP();
            public clases.CLSMAECLIP Cli
            {
                get { return _Cli; }
                set
                {
                    _Cli = value;
                    if (_Cli != null)
                    {
                        lisSub = _Cli.listaSubCliente();
                        obpedido.CODCLI_EPC = String.IsNullOrEmpty(_Cli.CODCLI_CLI) ? "" : _Cli.CODCLI_CLI;
                        if (_Cli.NOMCLI_CLI.ToString() == "<Todos>")
                            logHabilitar = false;
                        else
                        {
                            logHabilitar = true;
                        }
                    }
                    else
                        logHabilitar = false;

                    RaisePropertyChangedEvent("Cli");
                }
            }

            List<clases.CLSMAECLIP> _lisSub = new List<clases.CLSMAECLIP>();
            public List<clases.CLSMAECLIP> lisSub
            {
                get { _lisSub.Insert(0, new clases.CLSMAECLIP { NOMCLI_CLI = "<Todos>" }); return _lisSub; }
                set { _lisSub = value; RaisePropertyChangedEvent("lisSub"); }
            }

            clases.CLSMAECLIP _Sub = new clases.CLSMAECLIP();
            public clases.CLSMAECLIP Sub
            {
                get { return _Sub; }
                set
                {
                    _Sub = value;
                    if (_Sub != null)
                    {
                        obpedido.SUBCLI_EPC = String.IsNullOrEmpty(_Sub.CODCLI_CLI) ? "" : _Sub.CODCLI_CLI;
                    }
                    RaisePropertyChangedEvent("Sub");
                }
            }

            List<clases.CLSMAECOLP> _lisCol = new List<clases.CLSMAECOLP>();
            public List<clases.CLSMAECOLP> lisCol
            {
                get { return _lisCol; }
                set { _lisCol = value; RaisePropertyChangedEvent("lisCol"); }
            }

            clases.CLSMAECOLP _Col = new clases.CLSMAECOLP();
            public clases.CLSMAECOLP Col
            {
                get { return _Col; }
                set { _Col = value; RaisePropertyChangedEvent("Col"); }
            }

            string _referencia = "";
            public string referencia
            {
                get { return _referencia; }
                set
                {
                    _referencia = value;
                    if (!String.IsNullOrEmpty(_referencia))
                    {
                        clases.CLSMAEREF refe = new clases.CLSMAEREF { CODREF_REF = _referencia };
                        refe.ConsultarP01();
                        if (!String.IsNullOrEmpty(refe.NOMREF_REF))
                        {
                            nomref = refe.NOMREF_REF;
                            _referencia = refe.CODREF_REF;
                            lisCol = consColor();
                        }
                        else
                        {
                            if (_referencia.Trim().Length > 0)
                                nomref = "No existe";
                            else
                                nomref = "";
                        }
                    }
                    else
                        nomref = "";

                    RaisePropertyChangedEvent("referencia");
                }
            }

            string _nomref = "";
            public string nomref
            {
                get { return _nomref; }
                set { _nomref = value; RaisePropertyChangedEvent("nomref"); }
            }

            DateTime _fecha;
            public DateTime fecha
            {
                get { return _fecha; }
                set { _fecha = value; RaisePropertyChangedEvent("fecha"); }
            }

            int _pedido;
            public int pedido
            {
                get { return _pedido; }
                set
                {
                    _pedido = value;
                    obreferencia.NROPED_EOP = _pedido;
                    RaisePropertyChangedEvent("pedido");
                }
            }

            string _cdorden = "";
            public string cdorden
            {
                get { return _cdorden; }
                set { _cdorden = value; RaisePropertyChangedEvent("cdorden"); }
            }

            private DataTable _orden = new DataTable();
            public DataTable orden
            {
                get { return _orden; }
                set { _orden = value; RaisePropertyChangedEvent("orden"); }
            }

            DataTable _dtCopiaOrdenes = new DataTable();
            public DataTable dtCopiaOrdenes
            {
                get { return _dtCopiaOrdenes; }
                set { _dtCopiaOrdenes = value; RaisePropertyChangedEvent("dtCopiaOrdenes"); }
            }

            int _ordensel;
            public int ordensel
            {
                get { return _ordensel; }
                set { _ordensel = value;
                    try
                    {
                        consumo.Clear();
                        if (_ordensel != -1)
                        {
                            strCopiaOrden = dtCopiaOrdenes.Rows[_ordensel]["NROORD_EOP"].ToString();
                            clases.CLSCONORD consumod = new clases.CLSCONORD();
                            consumod.NROORD_COR = dtCopiaOrdenes.Rows[_ordensel]["NROORD_EOP"].ToString();
                            consumo = consumod.consConsumoOrden();
                            clases.CLSREPPRO procesod = new clases.CLSREPPRO();
                            procesod.NROORD_RPP = dtCopiaOrdenes.Rows[_ordensel]["NROORD_EOP"].ToString();
                            proceso = procesod.consProOrden();
                            llenarImagen();
                            lisCanPro = _repositorio.consultarDetalleOrden(dtCopiaOrdenes.Rows[_ordensel]["NROORD_EOP"].ToString());

                            //BUSCAR REPARACION
                            DataTable dtR = consumod.consOrdenReparacion();
                            foreach (DataRow dr in dtR.Rows)
                            {
                                if (dr["TIPDET_DRP"].ToString().Trim() == "01")
                                {
                                    strCodigoCliente = dr["CODCLI_ERP"].ToString();
                                    strNombreCliente = dr["NOMCLI_CLI"].ToString();
                                    strReparacion = dr["NROREP_ERP"].ToString();
                                    strDocumentoIngreso = dr["DOCDET_DRP"].ToString();
                                }
                                else
                                {
                                    if (dr["TIPDET_DRP"].ToString().Trim() == "02")
                                        strDocumentoDespacho = dr["DOCDET_DRP"].ToString();
                                }
                            }
                        }
                        else
                        {
                            lisCanPro.Clear();
                        }

                    }
                    catch (Exception ex) { MessageBox.Show(ex.Message); }
                    RaisePropertyChangedEvent("ordensel");
                    RaisePropertyChangedEvent("consumo");
                }
            }

            DataTable _seccion = new DataTable();
            public DataTable seccion
            {
                get { return _seccion; }
                set { _seccion = value; RaisePropertyChangedEvent("seccion"); }
            }

            DataTable _consumo = new DataTable();
            public DataTable consumo
            {
                get { return _consumo; }
                set { _consumo = value; RaisePropertyChangedEvent("consumo"); }
            }

            DataTable _proceso = new DataTable();
            public DataTable proceso
            {
                get { return _proceso; }
                set { _proceso = value; RaisePropertyChangedEvent("proceso"); }
            }

            private VMvisorFotoReferencia _visorFotoReferencia = new VMvisorFotoReferencia();
            public VMvisorFotoReferencia visorFotoReferencia
            {
                get { return _visorFotoReferencia; }
                set { _visorFotoReferencia = value; RaisePropertyChangedEvent("visorFotoReferencia"); }
            }

            public void llenarImagen()
            {
                if (ordensel >= 0)
                {
                    visorFotoReferencia.strCodigo = dtCopiaOrdenes.Rows[ordensel]["CODREF_EOP"].ToString().Substring(0, 4);
                    visorFotoReferencia.strColor = dtCopiaOrdenes.Rows[ordensel]["CODCOL_EOP"].ToString();
                }
                else
                {
                    visorFotoReferencia.strCodigo = dtCopiaOrdenes.Rows[0]["CODREF_EOP"].ToString().Substring(0, 4);
                    visorFotoReferencia.strColor = dtCopiaOrdenes.Rows[0]["CODCOL_EOP"].ToString();
                }
            }

            DataTable _lisCanPro = new DataTable();
            public DataTable lisCanPro
            {
                get { return _lisCanPro; }
                set { _lisCanPro = value; RaisePropertyChangedEvent("lisCanPro"); }
            }

            private int _numIndice;
            public int numIndice
            {
                get { return _numIndice; }
                set 
                {
                    if (value > -1)
                    {
                        _numIndice = value;
                        RaisePropertyChangedEvent("numIndice");
                        switch (lisCanPro.Rows[numIndice][0].ToString())
                        {
                            case "PROGRAMADO":
                                strProceso = "PRG";
                                break;
                            case "CORTADO":
                                strProceso = "COR";
                                break;
                            case "PREPARADO":
                                strProceso = "PRP";
                                break;
                            case "GUARNECIDO":
                                strProceso = "GUA";
                                break;
                            case "MONTADO":
                                strProceso = "MON";
                                break;
                            case "DESPACHADO":
                                strProceso = "DES";
                                break;
                            default:
                                break;
                        }

                        consultar(dtCopiaOrdenes.Rows[ordensel]["NROORD_EOP"].ToString(), strProceso);
                    }
                }
            }

            void consultar(string strOrden, string strProceso)
            {
                try
                {
                    MDOgeneral _mod = new MDOgeneral();
                    lisdetalle.Clear();

                    if (strProceso == "PRG" || strProceso == "COR" || strProceso == "PRP" || strProceso == "GUA")
                    {
                        string query = "select b.consec_epp as Consecutivo, to_char(b.fecrep_epp, 'dd/MM/yyyy') as Fecha, b.codope_epp as Operario, sum(canpro_dpp) as Cantidad from detprcp a inner join encprcp b on a.codprc_dpp = b.codprc_epp and a.nroord_dpp = b.nroord_epp where b.nroord_epp = '" + strOrden + "' and b.codprc_epp ='" + strProceso + "' group by b.consec_epp, b.fecrep_epp, b.codope_epp";
                        lisdetalle = _mod.consulta(query);
                    }

                    if (strProceso == "MON")
                    {
                        string query = "select a.nroent_dmd as Entrada, to_char(b.fecha_emd, 'dd/MM/yyyy') as Fecha, sum(a.canpro_dmd) as Cantidad from detmondes a inner join encmondes b on a.nroent_dmd = b.nroent_emd where a.nroord_dmd = '" + strOrden + "' group by a.nroent_dmd, b.fecha_emd order by a.nroent_dmd";
                        lisdetalle = _mod.consulta(query);
                    }

                    if (strProceso == "DES")
                    {
                        string query = "select a.nroordd_ood as OrdenDespacho, to_char(b.fecord_eod, 'dd/MM/yyyy') as Fecha, b.nrodes_eod as Factura, sum(a.canpro_ood) as Cantidad from ordordd a inner join encordd b on a.nroordd_ood = b.nroord_eod where a.nroordp_ood = '" + strOrden + "' group by a.nroordd_ood, b.fecord_eod, b.nrodes_eod order by a.nroordd_ood ";
                        lisdetalle = _mod.consulta(query);
                    }

                }
                catch (Exception ex) { MessageBox.Show(ex.Message); }
            }

            private string _strProceso;
            public string strProceso
            {
                get { return _strProceso; }
                set { _strProceso = value; RaisePropertyChangedEvent("strProceso"); }
            }

            DataTable _lisdetalle = new DataTable();
            public DataTable lisdetalle
            {
                get { return _lisdetalle; }
                set { _lisdetalle = value; RaisePropertyChangedEvent("lisdetalle"); }
            }

            private Boolean _logHabilitar = false;
            public Boolean logHabilitar
            {
                get { return _logHabilitar; }
                set { _logHabilitar = value; RaisePropertyChangedEvent("logHabilitar"); }
            }

            private string _strCodigoCliente;
            public string strCodigoCliente
            {
                get { return _strCodigoCliente; }
                set { _strCodigoCliente = value; RaisePropertyChangedEvent("strCodigoCliente"); }
            }

            private string _strNombreCliente;
            public string strNombreCliente
            {
                get { return _strNombreCliente; }
                set { _strNombreCliente = value; RaisePropertyChangedEvent("strNombreCliente"); }
            }

            private string _strReparacion;
            public string strReparacion
            {
                get { return _strReparacion; }
                set { _strReparacion = value; RaisePropertyChangedEvent("strReparacion"); }
            }

            private string _strDocumentoIngreso;
            public string strDocumentoIngreso
            {
                get { return _strDocumentoIngreso; }
                set { _strDocumentoIngreso = value; RaisePropertyChangedEvent("strDocumentoIngreso"); }
            }

            private string _strDocumentoDespacho;
            public string strDocumentoDespacho
            {
                get { return _strDocumentoDespacho; }
                set { _strDocumentoDespacho = value; RaisePropertyChangedEvent("strDocumentoDespacho"); }
            }

            private Int32 _numTotalOrden;
            public Int32 numTotalOrden
            {
                get { return _numTotalOrden; }
                set { _numTotalOrden = value; RaisePropertyChangedEvent("numTotalOrden"); }
            }

            private Int32 _numTotalProgramado;
            public Int32 numTotalProgramado
            {
                get { return _numTotalProgramado; }
                set { _numTotalProgramado = value; RaisePropertyChangedEvent("numTotalProgramado"); }
            }

            private Int32 _numTotalCortado;
            public Int32 numTotalCortado
            {
                get { return _numTotalCortado; }
                set { _numTotalCortado = value; RaisePropertyChangedEvent("numTotalCortado"); }
            }

            private Int32 _numTotalPreparado;
            public Int32 numTotalPreparado
            {
                get { return _numTotalPreparado; }
                set { _numTotalPreparado = value; RaisePropertyChangedEvent("numTotalPreparado"); }
            }

            private Int32 _numTotalGuarnecido;
            public Int32 numTotalGuarnecido
            {
                get { return _numTotalGuarnecido; }
                set { _numTotalGuarnecido = value; RaisePropertyChangedEvent("numTotalGuarnecido"); }
            }

            private Int32 _numTotalMontado;
            public Int32 numTotalMontado
            {
                get { return _numTotalMontado; }
                set { _numTotalMontado = value; RaisePropertyChangedEvent("numTotalMontado"); }
            }

            private Int32 _numTotalDespachado;
            public Int32 numTotalDespachado
            {
                get { return _numTotalDespachado; }
                set { _numTotalDespachado = value; RaisePropertyChangedEvent("numTotalDespachado"); }
            }

            private string _strCopiaOrden;
            public string strCopiaOrden
            {
                get { return _strCopiaOrden; }
                set { _strCopiaOrden = value; RaisePropertyChangedEvent("strCopiaOrden"); }
            }
        

        }

    }

}
